Software-defined networking is an approach to communications networks in which network devices communicate with a network controller to determine which data paths network flows should propagate through a communications network. Communications networks that use software-defined networking techniques are referred to as software-defined networks (SDN).
Typically, a network device within an SDN sends a data path request to a network controller when a new network flow is detected or when that network device does not have a forwarding rule for handling a network flow. The network controller determines which forwarding rules should be established at that network device and other network devices to establish a data path for that network flow. The network controller then sends a message to each network device within that data path.
The messages provided to each network device within the data path include an instruction that is used by that network device to establish a forwarding rule for the network flow. In other words, the network controller programs the network devices to define the data path for the network flow. After the forwarding rules are established at each network device within that data path, the network flow (e.g., information within data packets of the network flow) propagates through the SDN along the data path.